{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "from sklearn import metrics\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.model_selection import train_test_split\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>label</th>\n",
       "      <th>label_code</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>&lt;=50K</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>&lt;=50K</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>&lt;=50K</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>&lt;=50K</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>&lt;=50K</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32556</th>\n",
       "      <td>&lt;=50K</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32557</th>\n",
       "      <td>&gt;50K</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32558</th>\n",
       "      <td>&lt;=50K</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32559</th>\n",
       "      <td>&lt;=50K</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32560</th>\n",
       "      <td>&gt;50K</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>32561 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        label  label_code\n",
       "0       <=50K           0\n",
       "1       <=50K           0\n",
       "2       <=50K           0\n",
       "3       <=50K           0\n",
       "4       <=50K           0\n",
       "...       ...         ...\n",
       "32556   <=50K           0\n",
       "32557    >50K           1\n",
       "32558   <=50K           0\n",
       "32559   <=50K           0\n",
       "32560    >50K           1\n",
       "\n",
       "[32561 rows x 2 columns]"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data = pd.read_csv('./data/adult.data')\n",
    "features = ['age', 'education_num', 'capital_gain', 'capital_loss', 'hours_per_week']\n",
    "labels = 'label_code'\n",
    "# 将文字变量转化为数字变量\n",
    "data[labels] = pd.Categorical(data.label).codes\n",
    "data[['label', labels]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-1 {color: black;}#sk-container-id-1 pre{padding: 0;}#sk-container-id-1 div.sk-toggleable {background-color: white;}#sk-container-id-1 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-1 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-1 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-1 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-1 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-1 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-1 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-1 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-1 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-1 div.sk-item {position: relative;z-index: 1;}#sk-container-id-1 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-1 div.sk-item::before, #sk-container-id-1 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-1 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-1 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-1 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-1 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-1 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-1 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-1 div.sk-label-container {text-align: center;}#sk-container-id-1 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-1 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>LogisticRegression()</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">LogisticRegression</label><div class=\"sk-toggleable__content\"><pre>LogisticRegression()</pre></div></div></div></div></div>"
      ],
      "text/plain": [
       "LogisticRegression()"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 将数据分为训练集和测试集\n",
    "train_set, test_set = train_test_split(data, test_size=0.2, random_state=2310)\n",
    "# 训练模型并分析模型效果\n",
    "model = LogisticRegression()\n",
    "model.fit(train_set[features], train_set[labels])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.8309502395153554"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 得到预测的概率\n",
    "preds = model.predict_proba(test_set[features])[:, 1]\n",
    "# 得到False Positive Rate和True Positive Rate\n",
    "fpr, tpr, _ = metrics.roc_curve(test_set[labels], preds)\n",
    "# 得到AUC\n",
    "auc = metrics.auc(fpr, tpr)\n",
    "auc"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.        , 0.        , 0.        , ..., 0.99716427, 0.99777193,\n",
       "       1.        ])"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# False Positive Rate\n",
    "fpr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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6SSSkpKYOnUqderUUQ+LlB0eDzG330702LFYY0h/7TUyBw50uqoiU3ARkTJr9uzZrFixgvvvvz/Q1rRpU4YMGUJkZCSnn346xx9/vMKKlElm+3YiZ83CulykjRpF1hVXOF1SUCi4iEiZs3PnTm655RbGjx+fo71du3Z88MEHVK5c2aHKREqOrVmT1OnTca1aRVaumZtLMwUXESlTFi1axFlnnZWj7b777uOMM87g3HPPxRXi05mLFElmJq6VK/G0agWAp3FjPI0bO1xUcCm4iEiZsHnzZi666CJWrVoVaGvXrh3Dhg2jefPmDlYmUkLS04kdOJDIb74hdcIE3Oee63RFxUJ/eohIqfbAAw9gjKFOnTqB0NKnTx/+/vtvpk+frtAi4SEtjbgrriBq5kzvelaWs/UUI/W4iEiptG7dOq655hq+/fbbQFvjxo3p2LEjTzzxhA4JSfhISSGub18i583DxsWROn487vbtna6q2Ci4iEipYq1l1KhR3HfffRw8eBCA5s2b8/rrr3PyySfrDCEJLwcOENenD5ELF2LLlSN14kTcucZ4lTUKLiJSqjzzzDM89NBDALRp04aXX36Zpk2bKrBI+DlwgLhevYhcsgRboQKpkyfjPuMMp6sqdgouIlJq3H333bzou9bKgAEDePnll4mKinK4KhGHxMVhjz0WW7EiKZ99hufUU52uqEQYa63TNYQcY0wCkJSUlERCQoLT5YiEtV27dtGuXTsiIyNZuXJloH316tVUr17dwcpEQkBWFmbdOmyjRk5XEpCcnEzt2rUBEq21ycHev0aviUjI+vPPP6lZsyZ//PFHILTceuut7NmzR6FFwpLZtYvoZ58F/1XMIyNDKrSUBB0qEpGQs2TJEt59910++OADsnyndV5++eXcfPPNnHTSSRrPImHJbN9OXLduRPz5J6SmkvHEE06X5AgFFxEJGSNHjmTGjBnMmjUr0HbeeefxyiuvUL9+fecKE3GY2bqV+K5dca1Zg6dWLTL793e6JMcouIiIY1avXs2yZctYvHgxb775JpmZmYHHEhMTufPOO7n11luJiIhwsEoRZ5lNm7yhZd06PHXqkDJtGrZBA6fLcoyCi4iUqKSkJO6++27++usvFi5cmOc2M2bMoG3btppETsKeWb/eG1o2bsRTvz4p06dj69Z1uixHKbiISIlIS0tj5MiR3H33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/PEKLCIiJaRcuXKkpqaydetW/v77b5o2bUr58uVLvA6dVVRa7N8P1nqXY2NJGzs2LENLZmYm6enpVK1aVaFFRKSEVa5cmYiICJYuXcpXX31FigNnsiq4lAJmxw7iO3Qg5tFH/wsvYco/ELc0zmgsIlLa+cd+1q1blw0bNrBu3boSr0HB5QhC4S96s20bcZ07E/HHH0SOH4/ZtcvpkkJCKPzbiIiEG/93b0REBC6Xiy1btpR4DQouIcxs3kx8p05E/P03ntq1SZk1C1utmtNliYiIEBkZSVpaWom/roJLiDIbNhDfuTOutWvx1KtHysyZ2IYNnS5LwsxLL73EBx98EFj//PPPGTx4MKmpqUd97t69e/kx+2UofP766y+mT5/Otm3bglprQZSF95WSklKoXxqZmZns37//qNsdPHiwMGUV2MaNG0vkdQ4nKSmJ5ORkR2uQglFwOQKnDkeYtWuJ79QJ1/r1eI47zhta6td3pBYJb2+++SbTp08PrK9YsYI333wTl+voXx3vvvsup59+Ot98802O9l9++YVu3brx008/8fvvvzN06FBsCY/dcvJ9ff/998ydO5fFixezZMmSfN0WL17MvHnz+PbbbwP7ueaaa4iLi8MYU6BbdHQ0J510Uo6a3G43//zzD5999hn33HMPTZs2pWfPnqSnp7N+/frD3jweTwE/+ZweeughzjjjDEf+avd74oknOPvss9mxY4djNTjJ7Xazdu1adpWiYQgKLiEo4uefMVu24G7UiJTZs7F16jhdkjjg22+/zfELJz4+nhYtWjBmzJhDfiG+/fbbNG7cmNjYWE444QTGjx9/yP62bNlCr169qFChAtWrV+f+++8nKyvriDWUL1+eChUqBNZjY2OBo185PTMzk5EjR3LDDTdw/vnn53isZs2aANSpUwdjDMOHD+fRRx894v6Czcn3dccdd3D++efTtm1b2rRpk69b27ZtOe+88+jfv39gP08++SQ//fQTq1at4o8//gjcPvzwQwA+++yzHO3+24oVK5gyZUpgP5dffjmxsbE0atSIyy67jK+++oobbriBoUOHsmrVKo477rjD3opyRsnQoUN57733+OqrrwKff3Zz5szBGMOYMWNytK9fvx5jDK+//nqO9rFjx2KM4bfffgu05edn/plnnqFx48Z06NAhXz1RxW3FihW0b9+ecuXK0bJlS5YtW1bgfbjdbu6//37q1q1LXFwczZo1Y+TIkYds9+GHH3LMMcfQsGFDjjnmGHr06MG+ffuC8C6Kl+ZxOQKnelyyLrmENJcLd9u22GOOcaQGCR2DBg2iffv27N69m88//5wbbriBbdu28dhjjwHw1ltvcf3113P22WczZMgQPvzwQ/r27Ut8fDzdunUDvN3h7du3Z9++fTz22GMkJSXx3HPPceDAgUN+AWTnD00F9e6775KWlsbw4cPZsmULqampHH/88QDE+66nFRkZSbNmzXj//fepXr06ycnJJCQkFPi1CsPJ9/XRRx+RlZVFbGxsjunT//rrLzp06MDYsWMPCUXWWjIzM3P80m3UqFGeNX7xxRfUrVuXnj175us9DR06lHvuuYcmTZrQpUsXTj31VG6//fZATQDr1q2jfrZe30mTJtG7d+88A0d+zJ49m5deeonFixfTrFmzPLf56quvAvfXX399gV8jvz/zMTExfPLJJ3Tt2pVrr702z9BfUtavX895551H+fLlGTp0KN999x0dO3bkzz//pGrVqvnez7PPPsvIkSO5++67qVmzJnPnzuXmm2/G4/Fwyy23ALBkyRIGDhzIAw88wGWXXcb333/Pbbfdxv3338/o0aOL6y0Gh7VWt1w3IAGwN954o01OTi6R24Hvv7f7//67xF6vtN527Nhhly1bZg8ePGjLunnz5lnAvvXWW4E2t9ttTznlFFujRg1rrbVZWVn2mGOOsc2aNbNpaWnWWmuTkpJsjRo17Mknnxx43qOPPmoB++233wbaHnnkERsREWG3bdtmrbX2u+++s0Chbrfeemtgv1u2bLGVK1e248ePt9Zae91119nY2Fi7Zs0aa621P/74owXshAkT7Pjx4+2DDz5ozzzzTBsZGWnXr18f9M+xtLyvlStXWsBOmzYt3+8tLS3N7t27N8etTZs29vrrrz+k3X870v+dc845x951112B9b///tsCdt26dTm2mzhxovX++ii4jIwMe9xxx9m33377iNs1b97cArZy5crW7XYH2tetW2cBO2LEiBzbv/feexawK1eutNbm72c+ux07dtgqVarYOXPmFOj9HDx40O7cufOwt4J8Vw0cODDHz1RWVpZt0aKFvfPOOwtUU/369e1jjz2Wo619+/a2devWgfWOHTvaiy++OMc2gwYNsscee+wR933w4EG7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J554gquvvpqzzjqLtWvX5jg8ULduXerVq8dHH33Efffdx8svv3zYX+4//fQTb7/9do7DM04I9vvKr4suuohx48YFxqAczb333hs4rftoZwXt2LGD/v3706tXL7p27Rpob9y4MTfddBMADz/8MFOnTg2Maxk7dizXXXcd3333XaHez0knnUT37t259tprDxlLkpGRwYIFC2jfvj0dOnQI3Dp27MiqVavYunUrlSpVomrVqsyfPz/Hc+fPn0+5cuU49thjC/UzP3r0aFasWMGdd95ZoPfToEGDHLXmvhVk4G63bt2YOHFijun3x40bR5MmTfLdC+QPqv5B4wDJycmMGjWKmJgYmjRpQnR0NBMnTuTBBx/M8dzp06fTqFGjwOD+UKXgcgTB6nGJnDCB2KuvJnbQIFyFmL5ZxO+SSy6hTp06gcG5LpeLp59+mr/++ovOnTvz1ltvcdFFF7Fr1y6GDh0aeN7TTz9NYmIinTp1CvTYjBgxghtvvPGQM5KKIjU1lTfffJOHHnqIyy+/nGbNmlGxYkX69u0b6AJfv3495557Lrt37yYyMjIwjiI1NZXHHnvskG7qqVOnct1115X4ZQGyK473VRCXX355vv/ijoqKyvehomOOOYbPP//8sDOlzp49m48//pjXXnst8AvxySefpEWLFlx++eWBQ5IF9frrr/P3338HZnP1W7x4cWA8Rnb+dX+vy6233srs2bPp27cvb775JgMHDmTSpEncdNNNgfEtBfmZnzdvHrfffjsvvvgidRy8xMqtt95Keno6PXr0YNasWVx77bUsXbqUG2+8MbDN2rVr+fDDD0lKSspzH61ateKUU07hlltu4dRTT+WCCy6gfv36rFy5krvuuitwyOnJJ5/kiy++oEuXLrzxxhtcfvnlzJ49O8fA7pBVHLPalfYbvplzb7vttiLP9JryxhvWY4y1YDP697fJe/c6Pvtsab6F+8y51lo7fPhwC9hffvkl0Pb222/b//3vfzY6Oto2a9YsMLtrdqtWrbIdO3a08fHxtnr16vahhx6yWVlZgcd/+eWXQs8w+9BDDwX2c/7559uKFSvaPn362Pfeey8wC+jOnTvto48+asuVK2dbtGhh//77b/v888/biIgIO3LkSDt69GgL2ClTpuSo+7HHHrOAPeGEEwr1OYbq+8qtMDPnvvHGGwV+T4MGDTrs/s4+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\n",
      "text/plain": [
       "<Figure size 600x600 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 为在Matplotlib中显示中文，设置特殊字体\n",
    "plt.rcParams[\"font.sans-serif\"] = [\"SimHei\"]\n",
    "# 正确显示负号\n",
    "plt.rcParams['axes.unicode_minus'] = False\n",
    "plt.rcParams.update({'font.size': 13})\n",
    "# 创建一个图形框\n",
    "fig = plt.figure(figsize=(6, 6), dpi=100)\n",
    "# 在图形框里只画一幅图\n",
    "ax = fig.add_subplot(1, 1, 1)\n",
    "ax.set_title('ROC曲线')\n",
    "ax.set_xlabel(\"FPR\", fontsize=16)\n",
    "ax.set_ylabel(\"TPR\", fontsize=16)\n",
    "ax.plot([0, 1], [0, 1], \"r--\")\n",
    "ax.set_xlim([0, 1])\n",
    "ax.set_ylim([0, 1])\n",
    "ax.plot(fpr, tpr, 'k', label=f'ROC曲线；曲线下面积（AUC）= {auc:0.2f}')\n",
    "ax.fill_between(fpr, tpr, color=\"grey\", alpha=0.1)\n",
    "legend = plt.legend(shadow=True)\n",
    "plt.savefig('roc_curve.png', dpi=200)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAi4AAAIPCAYAAABUulVMAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/OQEPoAAAACXBIWXMAAA9hAAAPYQGoP6dpAABbaklEQVR4nO3dd3xT1f/H8ddJ0pECZSqIA5yIA5WvuPmJm42iCCiiuAcq7oETFf3i/KooggqKC2UoIKC4FQfiwAEiqCAIKHu0Sdok5/dH0lhKgaSkvRnv5+NxHyEnuTefXNL03XPPPddYaxERERFJBy6nCxARERGJl4KLiIiIpA0FFxEREUkbCi4iIiKSNhRcREREJG0ouIiIiEjaUHARERGRtKHgIiIiImlDwUVERETShoKLiIiIpI2UDC7GmB2MMYuNMe2quP7lxpjfjTFFxpgXjDEFya1QREREnJBywcUY4wVeB3ap4vpXAkOBn4HbgP8DnkpagSIiIuIYk0oXWTTGNAImAs2ApsBx1tqPEli/EFgMfAF0tNaGjTH/Ab4GDrbW/pD8qkVERKSmpFqPy9lAEOhaxfWPAwqBR621YQBr7TfA7O3YpoiIiKQIj9MFVDAReBLYtYrr7w9YYEaF9h+Ag7a0kjEmD8ir0NwAWF3FOkRERLJZHWCprYbDOikVXKy1fwAYY6q6iXrAKmvtxgrtK4BjtrLeLcCdVX1RERER2cwuwF/J3mhKBZckMEBxJe1+IulvS+4HHil3vw6wZPHixRQWFiaxPBHZXkVFRTRt2hSAWbNmUatWLYcrEhGzYgW1+vXD/dtvrKtfn5Zr1gBsqI7XyrTg4icSXioybH4oKMZaGwACsSdHe3wKCwsVXERSjNvtjv27SZMm+hkVcZhZuhTvBRfg/u03wjvtROjll+H446vt9TItuCwHdjLGuK21oXLtjaim5CciIpKtzOLFFHTujOuPPwjvsgvFkyYRbtCgWl8z1c4q2l4/EAljbSq0tyYSakRERCQJzMKFFHTsGAktzZtTPHUqds89q/11My24fAmsBC4razDGtAT+A3zkUE0iIiIZx7V0KeaffwjvuSfFU6ZgmzWrkddNq0NFxpiTAI+1dmplj1trS40xDwEPGGMWA18BDwIbgZdrrlIREZHMFjrqKHzjxxPec09skyY19rppFVyAgUBtoNLgEvUg0AS4lcig3HXAOdbaJdVfnoiISOZyzZkDQHi//QAIHX10jdeQksHFWruQSs4Osta2i2PdMHCNMeZJoAXwlbV2VbJrFBERySauH37A27UruN0UT5uG3XtvR+pIyeCSDNba34DfnK5DREQk3bm+/ZaCU0/FrF1L6JBDsA0bOleLY68sIiIiKc81cyYFXbtGQsthh1E8cSJU8ynPW63HsVcWERGRlOb+/PNIT8v69QSPOoriCROgbl1Ha1JwERERkc24vv4ab/fumI0bCR57LL5x46DO1q6eUzMydoyLiIiIVF14330J778/trAQ3yuvgNfrdEmAgouIiIhUpk4disePh7w8yM93upoYHSoSERERADyTJpH72GP/NtStm1KhBdTjIiIiIoBn/HjyL7gAEwoRatGCUIcOTpdUKfW4iIiIZDnPa6+Rf/75mFCI0l69CJ18stMlbZGCi4iISBbzvPQS+ZdcggmHKenbF//TT4Pb7XRZW6TgIiIikqVynn8e7+WXY6yl5IILCDz+eEqHFlBwERERyUqun38mf8AAAEouu4zAI4+AK/VjgQbnioiIZKHw/vvjHzwY199/Exg0CMxm1zZOSQouIiIi2cTvj53iXNq/v8PFJC71+4RERERk+1lL7uDBFJxyCqxb53Q1VabgIiIikumsJXfQIPIeeAD3d9/hmTLF6YqqTIeKREREMpm15A0cSO6TTwLgHzyYYO/eDhdVdQouIiIimSocJu/GG8kdPhwA/8MPU3rRRQ4XtX0UXERERDJROEzegAHkjhqFNYbA449Teu65Tle13RRcREREMpD5+288U6diXS78Tz1F8KyznC4pKRRcREREMpDdaSd8kyfjmjOH4GmnOV1O0uisIhERkUxRWorr229jd8MtWmRUaAEFFxERkcwQCJB/zjkUnHIK7g8/dLqaaqPgIiIiku78frxnnUVO2fwswaCz9VQjjXERERFJZ8XFeHv3xvPhh1ivF9+YMYTatXO6qmqj4CIiIpKuNm7E27Mnnk8/xdaqhe+NNwgdc4zTVVUrBRcREZF0tHEj3u7d8Xz5JbZOHXzjxhE64ginq6p2Ci4iIiLpyOvF7rwztl49isePJ3zooU5XVCMUXERERNKR241/xAjMH39g997b6WpqjM4qEhERSRNm5UpyH3gAwuFIg8eTVaEF1OMiIiKSFszff+Pt0gX3L7+A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2YXiqVOxO+zgdFkiIiJ4PB78fn+Nv66CS4oyixZR0LEjrt9/J9ysGcVTpmD33NPpsiTLPPLII7z44oux+xMmTODSSy/F5/Ntc901a9bwdfnLUETNmzePyZMns2zZsqTWmohMeF/FxcVV+qVRWlrKhg0btvm8oqKiqpSVsD///LNGXmdL1q1bx/r16x2tQRKj4JKCzO+/U9ChA66FCwnvvnsktDRv7nRZkoWeeeYZJk+eHLs/e/ZsnnnmGVyubX91PP/88xx22GG8//77m7R///33dOnShW+//Zaff/6ZQYMGYWt47JaT7+uLL77ggw8+4PPPP+fLL7+Ma/n888/58MMP+eijj2LbOf/88/F6vRhjElpyc3M58MADN6kpFArx22+/MX78eG644QZatmzJaaedRiAQYOHChVtcwuFwgnt+UwMHDuSII45w5K/2MnfffTdt27bln3/+cawGSYyCSwpyf/cd5q+/CO29N8XTpmF33dXpksQBH3300Sa/cAoKCjj44IMZPnz4Zr8Qn332WVq0aEF+fj77778/Y8aM2Wx7f/31F927d6dOnTo0btyYm2++mWAwuNUaateuTZ06dWL38/PzAcjLy9vqeqWlpQwdOpRLLrmEE044YZPHdtppJwB23XVXjDEMGTKEO+64Y6vbSzYn39c111zDCSecwNFHH82RRx4Z13L00Udz/PHH06dPn9h27rnnHr799lvmzJnD3LlzY8tLL70EwPjx4zdpL1tmz57Nm2++GdtOr169yM/PZ++99+bMM89k+vTpXHLJJQwaNIg5c+aw++67b3HZnjNKBg0axMiRI5k+fXps/5f3zjvvYIxh+PDhm7QvXLgQYwxPPvnkJu2jRo3CGMNPP/0Ua4vnM3///ffTokULTjzxxLh6oqrb7NmzadeuHbVq1eKQQw5h1qxZCa1ftn+2tIwaNQqIhNWCgoLNHj/xxBOr4V0ll+ZxSUHB00/H73IROvpo7I47Ol2OOOyCCy6gXbt2rFq1igkTJnDJJZewbNky7rzzTgBGjBjBxRdfTNu2bbn88st56aWX6N27NwUFBXTp0gWIdIe3a9eOtWvXcuedd7Ju3Tr++9//snHjxs1+AZRX9mWWqOeffx6/38+QIUP466+/8Pl87LXXXgAURK+n5fF42G+//XjhhRdo3Lgx69evp7CwMOHXqgon39fLL79MMBgkPz9/k+nT582bx4knnsioUaM2C0XWWkpLSzf5pbv33ntXWuNbb73FbrvtxmmnnRbXexo0aBA33HAD++67L506deLQQw9lwIABsZoA/vjjD5qX6/UdO3YsPXr0qDRwxGPatGk88sgjfP755+y3336VPmf69Omx24svvjjh14j3M5+Xl8err75K586dufDCCysN/TVl4cKFHH/88dSuXZtBgwbx2Wef0b59e3755RcaNWoU1zZ22GEHRo8evVn73LlzGTx4MHtGhxzMmTMHn8/HY489RsOGDWPPKwvgqUzBJUW4fv4Z27AhtkkTAIJxfulI5jviiCNif2lfeeWVHHbYYQwbNow777yTUCjEbbfdxn777cf06dPJy8ujX79+tGjRgttvvz0WXB555BEWLFjARx99xLHRa1oZYxg8eDC33XYbTZo0YcaMGRxzzDGbvf4333zDc889t0lbxV/6V111Ff/73/8AWLp0KbfeeitPP/00hYWFXH/99YwePZqffvop9qUJ8PPPP/PTTz8xe/ZsPvroI2bOnMmCBQto1qxZ8nYepNz72nMLY9XWrl0LQMOGDdlll13iem+BQGCzcTlvvfUW7du3j22votzc3FjIAthnn322uP1tHTrzeBL/FVJaWsrll1/Oww8/vMXQAv8Glw8++IBwOBzXYbzy4vnMl3G73bz44ou0bNmSd999l5NPPjnu1ykuLt5qz1NBQcEm+3tr7rrrLoqLi5k5cyZ77rknAwYM4NBDD+X+++/n4YcfjmsbtWrV2qRnrswZZ5xBu3btaNu2LQCzZs2iTp06XHXVVWl3lqYOFaUA1/ffU9CxI96uXTErVjhdjqQwl8vFcccdx/LlyyktLeXrr7/mn3/+oWfPnrHDHIWFhXTq1InZs2ezdOlSAF599VVatmwZ+wIHaN++PaFQiM8//xwAr9cLwLBhw9iwYQMbNmzgkEMO4dxzz43dv/vuuwFi91dGT88vW3fVqlV069aNQw45hLZt2/Ldd9/xwgsvMGjQIN577z369+/PpZdeCsB5553HY489xvr16znrrLOYNGnSJn/5JUumvi+Axx9/nPr162+yfPHFFwwfPnyz9rLl/PPPj61vrWXWrFn8+OOPzJ07l+LiYlavXs2cOXP4/vvvq2VysQkTJuB2u+nXr98Wn/P333/z448/0rdvX1avXs0333yT8OvE85kvb4cddmDAgAE88sgjCb3OkCFD2GGHHba4DBkyJK7tWGuZNGkSp556aizcut1uzjvvPN56662Eaqrohx9+YPz48dx7772xtlmzZnHEEUekXWgB9bg4zvX11xR0745Ztw722gsbndxHEmOtdWQGx3iUHUdOlqVLl1K3bl1ycnKYO3cusPlfzWWHL+bNm0dBQQHz58/n7LPP3uQ5u+++Oz179oxdc6Tsr+e8vLzYNN4ulwuPxxO7XzbxX9n9snXKbjds2MC3335LOBxmt912w1pLmzZtuO666+jTpw+5ubn07duXb775hnHjxtG+fftNalq+fHnSpxBP1/cVTy9Dbm4uDRo04LfffgPg7LPPZr/99mPgwIEATJw4kdtuu40ffvgBgFNPPTU2gRhEemzatGmzyTa//vprRo4cCVDpIYftNWXKFLp3777V9zZ9+nSstVx77bW8/PLLvPvuu5vVuTVr166N6zNf0ZlnnsmgQYPw+/1xHwbr27dvpT16ZfbYY4+4trNs2TJWr1692bZatWrFb7/9RlFREbVq1YprWxUNHjyYdu3acfTRR8faZs2aRVFREfvssw9//vkn++yzDzfccAPnnHNOlV6jJim4OMj9xRd4zzgDs2EDwSOPxPfGG1BDx/gzTXFxsSPXzIjHxo0bq/yFU7b+ypUrCQQCTJkyhddffz32hbwi2kPXoEGDTdapX78+ACtXrmTRokUANG3adJPn7LTTTrz22mux+4l2xVemefPmTJ48mQMOOIBAIMAhhxzC8OHDcblcvPLKK0DkF/J1113HkiVLmDlzJrNnz2bmzJm8//77rFmzhjVr1mx3HeWl4/v6+uuvOffcc3n99dc54IADtvi8sguM1qtXD4jMapqXlxe7X1BQgMvlit33eDybzDqdn5/Phg0byMvL47vvvuPwww/nuuuu47///S9+v3+bpypbaxMO5QsWLNhsDE9F06dPp3Hjxhx00EG0atWK6dOnx8JYPOL9zFe09957Y4xh0aJFtGjRIq7X2mOPPeIOJ1tTdmiveYUzSHeIzt21ePFi9t1334S3u2zZMsaPH7/J+w4EAnz//fc0aNCASy65hB133JExY8bQt29fcnNz6dmzZ5XfR01QcHGI+9NP8Z55JqaoiOD//R++116DFP3FK8665ppruOaaa2L3O3bsyGOPPQZEvoCATf6KLn/f7/ezceNGgLj/ggwEArF1wuEwwWAwdr+kpAQgdr/s9cvr0KFD7LZ///6xU2/HjRvHN998w08//YS1losuuog6derQqlUrDjroIG666SZatWq12fbuuusu7r77bvbff/9NzhhJVKq9r62x1rJs2TLatWvHu+++S+stXJesstBw3333cd9998XuVxwzVHGdssBfdjZSSUkJb7/9Nl27do2d7rxixYpNPj9lv2QDgUDCA3SDweA2w+R7773HUUcdBcDRRx/N8OHDE+pxSPQzX8YYg8vl2ubZdtWh7EzBiuNhyt5DVc94GjZsGI0bN6Zbt26xNp/Px1133cVZZ50V+3xcfPHFHHHEETz44IMKLrI596efRnpafD6Cxx2H79VXIc7BW1K5goKC2JdVqol3YN6WXHvttXTo0IFHH32UTz/9lNdeey12Km/Zl1ppaekm65Td93q9sV8SZdd5KlNSUsKcOXPYddddNxmDcemll8bGawCx8RzllT+VuDKDBg1i/vz5jB8/Ptb2/vvv888//3DUUUdRWlpKOBxm2rRpGGO4/fbbad26dUKHAxKVTu/rsMMO47333uOEE07gpJNO4sMPP4w7/Fx//fWbHCqK51Tzv//+m+eeew6v18u7777LU089xUcffRQLCocddlil61UluDRq1Gir17f5+eefWbp0KQceeCArV67kgAMOoKSkhI8//piOHTvG9RqJfubL/PXXX/j9/rjP4IFISNrad0/t2rXj6g0u248Vpzoou19ZmN4Way3PP/88ffv23eQMtnr16nHLLbds8lyPx0Pv3r25/vrr2bBhwzZ/FpykwbkOCO++O7ZxY4KnnIJvzBiFliQwxlCrVq2UXLZ3fEvLli058cQTue2229iwYUNs/AH82428atWqTdZZvXp17PGyL+iKz/njjz845JBDNhv4N3LkSKy1WGv5z3/+wwUXXBC7f//99wPE7lc20+yAAQNip2ofe+yx7LHHHvTp04ennnqKsWPHcvPNN9O9e/dY78mwYcO49957ueOOOyodp9S/f3/mzp3LpEmT4t9plUi197Ut//nPf5g2bRolJSWcdNJJzJ8/P671cnNzY78s4w0Vt9xyC3vuuSeHHXYYZ5xxBieffDJ9+/Zljz32iB3mqmypyunrrVu35tNPP93i4++++y4QCYk77LBDLGyWtccj0c98mU8//ZSdd96Zxo0bx/1aDz30EDvttNMWl4ceeiiu7ZSd5bR48eJN2ssGilclSMyYMYMlS5Zw+umnx/X8sj+yli9fnvBr1ST1uDjA7rJLZGK5Ro1AVzmWOB155JEcfvjhPP744/Tv3x+Xy8X+++8PEBukW+bXX38FYN9996VRo0YUFBTw448/bvKcJUuWAMmft+HQQw+lR48etGzZkubNm9OkSZPNxguccMIJXHzxxZxzzjm88sorsbM5Kgt5jRo1Sugv4OqS7PcVjyOOOIKxY8fSuXNnLrvsMt57771trjN48GAGDx4cu7+t08snTZrEyJEjmTRpUuyX7KOPPsp7771H3bp1+eOPP7j99tsZOnQodevWZd68eXzxxRecd955VXpPPXr04N577+WXX36pdMzG9OnTqVu3LmPHjo21XXHFFbHTo8sG1lbs5Si7X7duXZo2bVqlz/wTTzxBjx49Eno/yRqcW6tWLfbYYw+++OILzj333Fj7t99+C7DJ6dvxGjNmDM2bN9/sUOO0adN4/fXXef755zdpL9tf1XUWXLKox6WGeCZMwFOue9k2barQIgm75ppr+O2332K9D//5z39o0qQJr7/+emycxoYNG3j77bdp3bo1jRs3xu1207VrV7788stNxoi89dZb5OTkcPjhhye1xj59+vD6669z9913069fP4455hh+//33TQ4P7LbbbjRr1oyXX36Zm266iUcffXSLv9y//fZbnn322U0Ozzgh2e8rXqeccgqjR4+OjUHZlhtvvDF2Wve2zgr6559/6NOnD927d6dz586x9hYtWnDFFVcAcNtttzFx4sTYuJZRo0Zx0UUX8dlnn1Xp/Rx44IF07dqVCy+8cLOxJCUlJXzyySe0a9eOE088Mba0b9+eOXPmsHTpUurXr0+jRo34+OOPN1n3448/platWuy8885V+swPGzaM2bNnc+211yb0fvbYY49Naq24JDJwt0uXLrzxxhuxXhaInNm17777JtQLVGbSpEmccsopm7UHg0FGjhzJjBkzYm3z589n9OjRtGnTZrPB/qlGwaUGeF5/nfx+/ci/4AJcCU7fLFLe6aefzq677hobnOtyubjvvvuYN28eHTt2ZMSIEZxyyimsXLmSQYMGxda77777qFu3Lh06dIj12DzxxBNcdtllSf2S8vl8PPPMMwwcOJBevXqx3377Ua9ePXr37h3rAl+4cCHHHXccq1atwuPxxMZR+Hw+7rzzzs0ueDdx4kQuuuiiGr8sQHnV8b4S0atXr7j/4s7JyYn7UNGOO+7IhAkTGDZsWKWPT5s2jVdeeYXHH3881nNzzz33cPDBB9OrV6/YIclEPfnkk/z666/0799/k+sdff755xQVFW027XzZ/bJel6uuuopp06bRu3dvnnnmGc4991zGjh3LFVdcERvfkshn/sMPP2TAgAE8/PDD7OrgJVauuuoqAoEA3bp1Y+rUqVx44YV89dVXXHbZZbHn/P7777z00kusW7duq9v6/fffWbRoUWyQc3kdOnSgVatWdO7cOTb26/DDD6e0tDTuie4cVXZMV8u/C1AI2Llz59r169dv11L89NM2bIy1YEv69LHr16zZ7m1m8/LPP//YWbNm2aKiIpvpPvzwQwvYESNGbNI+ZMgQC9jvv/8+1vbss8/affbZx+bm5tr99tvPjhkzZrPtzZkzx7Zv394WFBTYxo0b24EDB9pgMBh7/Pvvv7dAlZaBAwfGtnPCCSfYevXq2Z49e9qRI0faBQsWWGutXbFihb3jjjtsrVq17MEHH2x//fVX++CDD1q3222HDh1qhw0bZgH75ptvblL3nXfeaQG7//77V2k/pur7qujHH3+0gJ00aVLc7+3pp59O+D1dcMEFW9xe27Zt7a233mqttfbPP/+0jRs3tr17997seXPnzrV5eXm2e/fucdda0cyZM229evVs9+7dbWlpqbXW2ltvvdUCds6cOZs8d926ddbj8dizzjrLWmttaWmpvfnmm+0uu+xiPR6P3Wmnney1115r/X7/Jutt6zNvrbWvv/66zc3Njb1vp73zzjt2hx122OT/KxQKxR4fOXKkBeyPP/641e08++yzFrDz58+v9PFly5bZXr162cLCQluvXj3buXNn+80332yzvqKiIjtr1iz76quv2gceeMC+9NJLm31PL1q0qKz+QlsNv6ONreGrsqYDY0whsG7u3LnsvPPOVd5OzsiR5F99NQAl559P4JFHIAlzSmSzsrklWrZsud1n68imvvnmGw499FCGDh3KWWedFdc6gUCAJk2acPPNN8cGuK5YsYL69etvMh388uXLadWqFWvXruXaa6/l7rvvjs30e8stt/DAAw8AkXE8M2bM2OzwylNPPcVLL71U6Yyn6fy+yps1axZt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\n",
      "text/plain": [
       "<Figure size 600x600 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 理解AUC的简单例子\n",
    "fpr = [0, 0, 0.5, 0.5, 1]\n",
    "tpr = [0, 0.5, 0.5, 1, 1]\n",
    "auc = metrics.auc(fpr, tpr)\n",
    "# 为在Matplotlib中显示中文，设置特殊字体\n",
    "plt.rcParams[\"font.sans-serif\"] = [\"SimHei\"]\n",
    "# 正确显示负号\n",
    "plt.rcParams['axes.unicode_minus'] = False\n",
    "plt.rcParams.update({'font.size': 13})\n",
    "# 创建一个图形框\n",
    "fig = plt.figure(figsize=(6, 6), dpi=100)\n",
    "# 在图形框里只画一幅图\n",
    "ax = fig.add_subplot(1, 1, 1)\n",
    "ax.set_xlabel(\"FPR\", fontsize=16)\n",
    "ax.set_ylabel(\"TPR\", fontsize=16)\n",
    "ax.plot([0, 1], [0, 1], \"r--\")\n",
    "ax.set_xlim([0, 1])\n",
    "ax.set_ylim([0, 1])\n",
    "ax.plot(fpr, tpr, 'k', label=f'ROC曲线；曲线下面积（AUC）= {auc:0.2f}')\n",
    "ax.fill_between(fpr, tpr, color=\"grey\", alpha=0.1)\n",
    "legend = plt.legend(shadow=True)\n",
    "plt.savefig('roc_curve_example.png', dpi=200)\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
